#include "null.h"

module_t null_module =
{
	.name = "null\0",
	.author = "dak\0",
	.license = "gpl\0",
	.desc = "null driver\0",
	.dep = "\0",
	.type = MOD_TYPE_SYSTEM,
	
	.init = null_init,
	.shut = null_shut,
};


/*
 * Inizializza il modulo
 */
uint32_t null_init()
{
	null_module.dev = (vfs_node_t *) devfs_mk_node(null_module.name, VFS_NODE_TYPE_DCHAR);
	//null_module.dev->read = null_rwop;
	//null_module.dev->write = null_rwop;
	
	return MOD_OK;
}


/*
 * Ferma il modulo
 */
uint32_t null_shut()
{
	devfs_dl_node(null_module.name);
	return MOD_OK;	
}


/*
 * Scrive e legge nel nulla
 */
uint32_t null_rwop(struct file *f, uint8_t *data, uint32_t size, uint64_t offset)
{
	return size;
}


/*
 * Apre il device
 */
uint32_t null_open(struct file *f)
{
	return 0;
}


/*
 * Chiude il device
 */
uint32_t null_close(struct file *f)
{
	return 0;
}
